This invention relates to the field of data compression schemes and, more specifically, to data compression schemes using run length encoding.
Printer systems have a series of hardware and software operations through which digital data passes in preparation for printing, referred to as a pipeline. The digital data is used by a print engine to form a print image on a print surface using, for examples, a scanning laser beam or an inkjet. An area of the print surface on which the image is formed is referred to as a picture element (pel or pixel). One scan of the laser beam across the print surface forms a row of pixels, referred to as a scan row. As such, the print image is formed with multiple scan rows.
The type of data that passes through the pipeline may include both text, graphics, and image. As printers increase the density of dot placements, particularly with color printing that requires additional bits per pixel over monochrome printing, the time required for the printer""s data pipeline to transmit the data becomes substantial. To fully utilize the increasing print speed capabilities of print engines, the pipeline of a printer system must be able to transfer data sufficiently fast to supply a continuous stream of data to the print engine, thereby allowing the print engine to print continuously.
FIG. 1 illustrates one type of printer system that uses data compression and decompression techniques to reduce data size such that data may be transmitted faster through a printer""s pipeline. Data compression refers to a process that attempts to convert data in a given format into an alternative format requiring less space than the original. As such, data compressions systems effect a savings in the amount of storage required to hold, or the amount of time required to transmit, a given body of digital information.
With one type of compression method, referred to as run length encoding, the length of continuous identical pixel data is converted into a run length code for transmission. For example, using one run length compression method, the pixel data line xe2x80x9caaaabbbbbbbcccccddxe2x80x9d is converted into the coded data xe2x80x9ca4b7c5d2.xe2x80x9d The coded data consists of bytes of pixel information (a, b, c, and d) and the number of those bytes that are the same (4, 7, 5, and 2). Each byte contains 8 bits of pixel information. Such a byte based compression method may still not provide enough reduction in storage space or transmit time that may be required by current print engines. Further, it is possible that the size of the compressed data may be larger than the size of the original data.
Another problem with some compression methods is that they may not be targeted to handle multiple bits/pixel. Furthermore, prior compression methods may not be efficient to decode in terms of output bandwidth.
The present invention provides a method of data compression. The method may include receiving a data stream having a plurality of bytes and compressing the data stream into a compressed data format by identifying a run of consecutive bytes of the data stream based on the similarity of the consecutive bytes.
Additional features and advantages of the present invention will be apparent from the accompanying drawings and from the detailed description that follows.